import cv2

if __name__ == '__main__':
    # 读取图像
    image = cv2.imread('opencv_logo.jpg')
    # 转换为灰度图像 :cvtColor能够转换很多种图像
    gray = cv2.cvtColor(image,cv2.COLOR_BGR2GRAY)
    # 获取图像的特征点 参数:图像,特征点数量,特征点质量,特征点距离
    corners:cv2.typing.MatLike = cv2.goodFeaturesToTrack(gray, 25, 0.05, 10)
    # 遍历特征点
    for corner in corners:
        # 获取特征点的坐标
        x, y = corner.ravel() #注意，此处没有补全
        # 在图像上绘制特征点
        cv2.circle(image, (int(x),int(y)), 3, (0, 255, 0), -1)
    # 显示图像
    cv2.imshow('corners', image)
    # 等待按键
    if cv2.waitKey(0) == ord('q'):
        cv2.destroyAllWindows()
    # 退出程序
    exit(0)